/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package comportement;

import cartes.Carte;
import cartes.Monstre;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Random;
import plateau.Joueur;

/**
 *
 * @author Arthur
 */
public class ActionDefausserInventaire implements ActionCarte, Serializable {
    
    public ActionDefausserInventaire(ArrayList<Integer> type) {
        this.type =  new ArrayList<Integer>(type);
    }

    public ArrayList<Integer> type;

    /*
     * Défausse une ou plusieurs carte de l'inventaire suite à un incident fâcheux
     */
    public void utiliser(Joueur j) {
        ArrayList<Carte> listCartes = new ArrayList<Carte>();

        // Pour chaque type de carte à défausser
        for( Integer i : type ) {

            // On récupère la liste des cartes correspondantes dans l'inventaire
            if( j.getInventaire().containsType(i) ) {
                // Et on l'ajoute dans une var temporaire
                listCartes.addAll( j.getInventaire().getType(i) );

                // Le joueur choisi une carte à défausser
                // en attendant nombre temporaire
                j.defausserInventaireForce(listCartes.get((new Random()).nextInt(listCartes.size())));
            }
        }       
    }

    public String getDescription() {
       String description;
        description = "Vous perdez tout votre inventaire" ;
        return description;
    }

    public void utiliser(Joueur j, Joueur j2) {
        this.utiliser(j2);
    }

    public void utiliser(Monstre m) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
